package co.yixiang.utils;

import cn.hutool.core.codec.Base64;
import cn.hutool.core.text.StrBuilder;
import cn.hutool.extra.qrcode.QrCodeUtil;


public class QrCodeUtils {


	/**
	 * 获取二维码Base64
	 * @param key 二维码内容
	 * @return /
	 */
	public static String getQrCodeUrl(String key) {
		return getQrCodeUrl(key,  180, 180);
	}

	/**
	 * 获取二维码Base64
	 * @param key 二维码内容
	 * @param width 宽
	 * @param height 高
	 * @return /
	 */
	public static String getQrCodeUrl(String key, int width, int height) {
		byte[] bytes = QrCodeUtil.generatePng(key, width, height);
		return Base64.encode(bytes);
	}

	/**
	 * 获取web程序可用二维码Url
	 * @param key 二维码内容
	 * @return /
	 */
	public static String getWebQrCodeUrl(String key) {
		return "data:image/png;base64," + getQrCodeUrl(key,  180, 180);
	}

	/**
	 * 转换key
	 * @param key 二维码内容
	 * @return /
	 */
	public static String convertKey(String key, String action) {
		return StrBuilder.create(action, "&activationCode=", key).toString();
	}

	/**
	 * 获取web程序可用二维码Url
	 * @param key 二维码内容
	 * @return /
	 */
	public static String getActionWebQrCodeUrl(String key, String action) {
		return getWebQrCodeUrl(convertKey(key, action));
	}

	/**
	 * 获取web程序可用二维码Bytes
	 * @param key 二维码内容
	 * @return /
	 */
	public static byte[] getActionQrCodeBytes(String key, String action) {
		return QrCodeUtil.generatePng(convertKey(key, action), 180, 180);
	}


}
